package com.yelink.metrics.api;


import com.yelink.metrics.api.dto.MetricsUpsertDTO;
import com.yelink.metrics.api.dto.TriggerCallbackDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @author shiqidi
 */
@FeignClient(value = "dfs", path = "/api")
public interface MetricsFeign {

    /**
     * 触发回调
     * @param o 入参
     * @return 结果
     */
    @PostMapping("/v1/open/metrics/target_group/trigger_callback")
    Object triggerCallback(@RequestBody TriggerCallbackDTO o);

    /**
     * 新增/更新 指标
     * @param dto 入参
     * @return 结果
     */
    @PostMapping("/v1/open/metrics/refresh_metrics")
    Object refreshMetrics(@RequestBody MetricsUpsertDTO dto);

    /**
     * 获取每日的时间参数
     * @return 时间参数
     */
    @GetMapping("/v1/open/metrics/getDaily")
    Object getDaily();

    /**
     * 获取每周的时间参数
     * @return 时间参数
     */
    @GetMapping("/v1/open/metrics/getWeekly")
    Object getWeekly();
    /**
     * 获取每月的时间参数
     * @return 时间参数
     */
    @GetMapping("/v1/open/metrics/getMonthly")
    Object getMonthly();

    @PostMapping("/v1/open/metrics/getCommonMaterialEntitys")
    Object getCommonMaterialEntitys(@RequestBody List<String> materialCodes);
}
